Skip to content

Использование библиотеки edtfind для поиска EDT в плагине edtExport#113

Merged
ovcharenko-di merged 4 commits intooscript-library:masterfrom
portalyug:edtfind-integration
Mar 27, 2026
Merged

Использование библиотеки edtfind для поиска EDT в плагине edtExport#113
ovcharenko-di merged 4 commits intooscript-library:masterfrom
portalyug:edtfind-integration

Conversation

@senja006
Copy link
Copy Markdown
Contributor

Описание

Встроенная логика поиска установленных версий EDT в плагине edtExport заменена на использование библиотеки edtfind.

Ранее edtExport самостоятельно сканировал каталоги установки, извлекал версии из имён папок, сортировал их и искал 1cedtcli — эта логика дублировалась в нескольких проектах (в т.ч. была частично скопирована из yard). Теперь всё это делает edtfind.

Что изменилось

packagedef:

  • Добавлена зависимость edtfind
  • Убрана зависимость semver (использовалась только для сортировки версий EDT, теперь это внутри edtfind)

edtExport.os:

  • Функция ОпределитьИсполняемыйФайл() упрощена: вместо ручного поиска вызывается ПоискEDT().НайтиИнформациюОEDT(ВерсияEDT), который возвращает структуру с полями КаталогEDT, ВерсияEDT, ПутьКcli
  • Выбор между 1cedtcli и ring теперь определяется по наличию ПутьКcli в результате поиска, а не по сравнению строки версии с "2024"
  • Удалены четыре функции, ставшие ненужными: УточнитьВерсиюEDT(), НайтиEdtcli(), НайтиВсеУстановленныеEDT(), КаталогиУстановкиЕДТПоУмолчанию()

Мотивация

  • Устранение дублирования кода поиска EDT между проектами
  • Централизация логики в одной библиотеке, что упрощает поддержку при изменениях в структуре каталогов установки EDT
  • Более надёжное определение способа запуска (1cedtcli vs ring): вместо проверки по первым четырём символам версии — проверка фактического наличия файла 1cedtcli

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

TestsPassed ✅SkippedFailed
Результаты тестов. ОС: ubuntu-22.04. Версия 1С: 8.3.24.1691. Версия OneScript: 1.9.2. Версия EDT: 2023.3.6265 ran265 passed0 skipped0 failed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

TestsPassed ✅SkippedFailed
Результаты тестов. ОС: windows-latest. Версия 1С: 8.3.21.1624. Версия OneScript: 2.0.0. Версия EDT: 2023.3.6265 ran265 passed0 skipped0 failed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

TestsPassed ✅SkippedFailed
Результаты тестов. ОС: windows-latest. Версия 1С: 8.3.24.1691. Версия OneScript: 2.0.0. Версия EDT: 2024.2.5265 ran265 passed0 skipped0 failed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

TestsPassed ✅SkippedFailed
Результаты тестов. ОС: windows-latest. Версия 1С: 8.3.21.1624. Версия OneScript: 2.0.0. Версия EDT: 2024.2.5265 ran265 passed0 skipped0 failed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

TestsPassed ✅SkippedFailed
Результаты тестов. ОС: windows-latest. Версия 1С: 8.3.24.1691. Версия OneScript: 2.0.0. Версия EDT: 2023.3.6265 ran265 passed0 skipped0 failed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

TestsPassed ✅SkippedFailed
Результаты тестов. ОС: ubuntu-22.04. Версия 1С: 8.3.24.1691. Версия OneScript: 2.0.0. Версия EDT: 2024.2.5265 ran265 passed0 skipped0 failed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

TestsPassed ✅SkippedFailed
Результаты тестов. ОС: ubuntu-22.04. Версия 1С: 8.3.21.1624. Версия OneScript: 2.0.0. Версия EDT: 2023.3.6265 ran265 passed0 skipped0 failed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

TestsPassed ✅SkippedFailed
Результаты тестов. ОС: ubuntu-22.04. Версия 1С: 8.3.24.1691. Версия OneScript: 2.0.0. Версия EDT: 2023.3.6265 ran265 passed0 skipped0 failed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

TestsPassed ✅SkippedFailed
Результаты тестов. ОС: ubuntu-22.04. Версия 1С: 8.3.21.1624. Версия OneScript: 2.0.0. Версия EDT: 2024.2.5265 ran265 passed0 skipped0 failed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

TestsPassed ✅SkippedFailed
Результаты тестов. ОС: windows-latest. Версия 1С: 8.3.21.1624. Версия OneScript: 1.9.2. Версия EDT: 2024.2.5265 ran265 passed0 skipped0 failed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

TestsPassed ✅SkippedFailed
Результаты тестов. ОС: windows-latest. Версия 1С: 8.3.21.1624. Версия OneScript: 1.9.2. Версия EDT: 2023.3.6265 ran265 passed0 skipped0 failed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

TestsPassed ✅SkippedFailed
Результаты тестов. ОС: windows-latest. Версия 1С: 8.3.24.1691. Версия OneScript: 1.9.2. Версия EDT: 2024.2.5265 ran265 passed0 skipped0 failed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

TestsPassed ✅SkippedFailed
Результаты тестов. ОС: windows-latest. Версия 1С: 8.3.24.1691. Версия OneScript: 1.9.2. Версия EDT: 2023.3.6265 ran265 passed0 skipped0 failed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

TestsPassed ✅SkippedFailed
Результаты тестов. ОС: ubuntu-22.04. Версия 1С: 8.3.21.1624. Версия OneScript: 1.9.2. Версия EDT: 2023.3.6265 ran265 passed0 skipped0 failed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

TestsPassed ✅SkippedFailed
Результаты тестов. ОС: ubuntu-22.04. Версия 1С: 8.3.24.1691. Версия OneScript: 1.9.2. Версия EDT: 2024.2.5265 ran265 passed0 skipped0 failed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

TestsPassed ✅SkippedFailed
Результаты тестов. ОС: ubuntu-22.04. Версия 1С: 8.3.21.1624. Версия OneScript: 1.9.2. Версия EDT: 2024.2.5265 ran265 passed0 skipped0 failed

@senja006 senja006 marked this pull request as draft March 26, 2026 10:09
@senja006 senja006 marked this pull request as ready for review March 26, 2026 10:09
@ovcharenko-di
Copy link
Copy Markdown
Collaborator

@senja006 спасибо за доработку! В целом, одобряю эти изменения.
Тесты, правда, падают, надо чинить. Посмотрите, в чем дело?

На платформе 8.3.21 возникла ошибка с libstdc++.so, ее я поправлю в отдельной ветке fix/testing-ubuntu.

@portalyug-admin portalyug-admin force-pushed the edtfind-integration branch 2 times, most recently from 4b251e9 to 2dd00c4 Compare March 26, 2026 11:27
@senja006
Copy link
Copy Markdown
Contributor Author

@ovcharenko-di

Свои ошибки падения тестов решил. Также новым коммитом поправил ошибку в тестах, связанную с отсутствием зависимости от 1commands.

Текущая ошибка не связана с изменениями данного PR — она в файле limit.os, который не менялся.

Суть проблемы

В процедуре ПередНачаломЦиклаОбработкиВерсий при Лимит > 0 выполняется поиск текущей версии в таблице истории — проблемный фрагмент: строки 123–126 в limit.os (для контекста вся процедура: 115–138):

СтрокаТекущейВерсии = ТаблицаИсторииХранилища.Найти(ТекущаяВерсия, "НомерВерсии");
ИндексСтрокиТекущейВерсии = ТаблицаИсторииХранилища.Индекс(СтрокаТекущейВерсии);

Когда ТекущаяВерсия = 0 (синхронизация ещё не начиналась), метод Найти возвращает Неопределено, так как строки с НомерВерсии = 0 нет в таблице. Далее Индекс(Неопределено) в OneScript 1.9.2 молча обрабатывался, а в OneScript 2.0.0 выбрасывает исключение Invalid type of argument.

Падает сценарий «Синхронизация хранилища все вместе» в limit.feature (строки 60–71), где VERSION = 0 и --limit 3.

Предлагаемое исправление

Добавить проверку на Неопределено (на месте текущих строк 123–124):

СтрокаТекущейВерсии = ТаблицаИсторииХранилища.Найти(ТекущаяВерсия, "НомерВерсии");
Если СтрокаТекущейВерсии = Неопределено Тогда
    ИндексСтрокиТекущейВерсии = -1;
Иначе
    ИндексСтрокиТекущейВерсии = ТаблицаИсторииХранилища.Индекс(СтрокаТекущейВерсии);
КонецЕсли;

Если не возражаете, могу внести это исправление отдельным коммитом в рамках данного PR.

@ovcharenko-di
Copy link
Copy Markdown
Collaborator

@senja006 рекомендую сделать rebase на master и устранить конфликты

@senja006
Copy link
Copy Markdown
Contributor Author

@ovcharenko-di Готово

@ovcharenko-di
Copy link
Copy Markdown
Collaborator

@senja006 спасибо! У меня не оказалось прав вносить изменения непосредственно, поэтому примите мой PR в вашем форке.

Поднял версию плагина, обновил зависимости
@ovcharenko-di ovcharenko-di merged commit e932241 into oscript-library:master Mar 27, 2026
33 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants